#include <bits/stdc++.h>
using namespace std;

const int N = 3e5 + 5;
int cnt[N];
vector<int> s[N];

signed main() {
  int n, m;
  scanf("%d%d", &n, &m);
  // m道菜，每道菜有k个食材
  for (int i = 1; i <= m; ++i) {
    int k, x;
    scanf("%d", &k);
    for (int j = 1; j <= k; ++j) {
      scanf("%d", &x);
      s[x].push_back(i); // s[x]: x食材用在哪些食物中
      cnt[i] = k;        // 食物必备食材数量。刚开始全部不喜欢，被禁用
    }
  }

  int ans = 0;
  for (int i = 1; i <= n; ++i) {
    int b;
    scanf("%d", &b);
    for (auto j : s[b]) {
      cnt[j]--; // 该食材对应的食谱，不喜欢的食材数量-1
      if (!cnt[j]) {
        ans++; //不喜欢的食材为零，说明该食物可以说食用
      }
    }
    printf("%d\n", ans);
  }

  return 0;
}